Skip to content

Filter the six platform literals out of the sweep this document pastes - #221

Merged
iderex merged 1 commit into
mainfrom
parity/the-sweep-paste-put-the-six-literals-back-in-the-document
Aug 29, 2026
Merged

Filter the six platform literals out of the sweep this document pastes#221
iderex merged 1 commit into
mainfrom
parity/the-sweep-paste-put-the-six-literals-back-in-the-document

Conversation

@iderex

@iderex iderex commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

A correction to the paragraph that landed in bc32ccd under #26, found by
re-running its own sweep at the merge commit.

What was wrong

That paragraph pastes the sweep that finds declared check names carrying no
verdict in this document. Six of its ten output lines are the per-platform
build names, and those six literals are the one place this document
deliberately carries no literal: their verdict is the build row, which reaches
them through docs/decisions/0012-the-supported-platforms.md, and writing the
strings out is this document enumerating what that record decides.

Pasting the full output wrote all six into the file. Two things followed. The
absence ended in the same sentence that described it, and the sweep stopped
answering: every name it looks for is now present in the document, inside its
own pasted output. Read at the merge commit, one minute after it landed:

git show origin/main:internal/contexts/contexts.go \
  | grep -oE 'Name: +"[^"]+"' | sed 's/Name: *"//; s/"$//' | sort -u \
  | while read -r n; do
      git grep -q -F "$n" origin/main -- docs/quality-parity.md \
        || echo "no literal: $n"
    done
(no output)

git grep -n -F 'build (darwin/amd64)' origin/main -- docs/quality-parity.md
origin/main:docs/quality-parity.md:171:no literal: build (darwin/amd64)

Ten lines a minute earlier, and the one match is the paste itself.

The repair

One more pipeline stage, dropping those six by the row name the table already
carries rather than by naming any of the six:

git show 9208ceb599a294328bde3d8b660c65a5fd3c5fb5:internal/contexts/contexts.go \
  | grep -oE 'Name: +"[^"]+"' | sed 's/Name: *"//; s/"$//' | sort -u \
  | while read -r n; do
      git grep -q -F "$n" 9208ceb599a294328bde3d8b660c65a5fd3c5fb5 \
        -- docs/quality-parity.md || echo "no literal: $n"
    done | grep -v '^no literal: build ('
no literal: smoke (darwin/arm64)
no literal: smoke (linux/amd64)
no literal: smoke (windows/amd64)
no literal: verify the published artefacts

The command now produces exactly what is pasted beside it. The prose says why
the stage is there, because a filter that reads as tidying is the next thing
somebody removes, and it says the general shape: a sweep for names a document
does not carry cannot have its full output pasted into that document, because
the paste is what makes the answer wrong.

The four names the paragraph gives a verdict to are unchanged and their verdict
is unchanged. Nothing else in the section moved.

What this does not do

This change does not finish #26. What that issue waits on is the ruleset edit,
already written on the issue rather than repeated here.

The gate, run at the head of this branch

go build ./cmd/... ./internal/...
go vet ./cmd/... ./internal/...
gofmt -l cmd internal
(no output)
go test -count=1 ./cmd/... ./internal/...
ok  github.com/Flowfin/lab/cmd/bom
ok  github.com/Flowfin/lab/cmd/contexts
ok  github.com/Flowfin/lab/cmd/lab
ok  github.com/Flowfin/lab/cmd/notices
ok  github.com/Flowfin/lab/cmd/pullrequest
ok  github.com/Flowfin/lab/internal/bom
ok  github.com/Flowfin/lab/internal/check
ok  github.com/Flowfin/lab/internal/contexts
ok  github.com/Flowfin/lab/internal/hardware
ok  github.com/Flowfin/lab/internal/invariants
ok  github.com/Flowfin/lab/internal/notices
ok  github.com/Flowfin/lab/internal/prose
ok  github.com/Flowfin/lab/internal/pullrequest

go run ./cmd/lab check .
examined .
1 experiment directory walked, 1 record read
27 decision records read
0 refused

Timings are dropped from the suite output and nothing else is changed.

Means

The same prose and the same command, one pipeline stage longer, because what was
wrong is the paste rather than the reading.

Reading

No second reader on this board tonight, so this body carries the evidence in
place of one. Every command above was run before the sentence beside it was
written.

Refs #26

The paragraph that landed in bc32ccd pasted the sweep's full output, and six of
those ten lines are the per-platform build names whose literals this document
deliberately does not carry. Pasting them wrote all six into the file, which
ended the deliberate absence in the same sentence that described it, and it also
made the sweep answer nothing forever after: every name it looks for is now
present, in its own pasted output.

I found it by re-running the sweep at the merge commit, which returned an empty
list where it had returned ten lines a minute earlier.

The repair is a last stage that drops those six by the row name the table
already carries, so the command produces exactly what is pasted and names none
of the six. The prose beside it says why the stage is there, because a filter
that looks like tidying is the next thing somebody removes.

What it prevents is a document that enumerates what
docs/decisions/0012-the-supported-platforms.md decides, and a drift detector
disarmed by its own evidence.

The means is the same prose and the same command, one pipeline stage longer,
because what was wrong is the paste rather than the reading.

    go run ./cmd/lab check .
    1 experiment directory walked, 1 record read
    27 decision records read
    0 refused

Refs #26

Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
@iderex iderex added documentation Improvements or additions to documentation ci labels Aug 29, 2026
@iderex iderex self-assigned this Aug 29, 2026
@iderex
iderex merged commit ca823b3 into main Aug 29, 2026
25 checks passed
@iderex
iderex deleted the parity/the-sweep-paste-put-the-six-literals-back-in-the-document branch August 29, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant